Sort Characters By Frequency
Question
Given a string, sort it in decreasing order based on the frequency of characters.
Example 1:
|
|
Example 2:
|
|
Example 3:
|
|
Analysis
- O(n)解法
- 利用map记录出现在string中的各字符的次数
- List Array的脚标i表示该字符在String中出现的次数,List以string的形式存储char,方便后续脚标从大到小遍历。 注意在新建ArrayList之后还需向其中加入当前字符ch,所以不能用else
- 根据脚标从大到小遍历,将字符以脚标个数加入字符串中
- 利用Bucket Sort解决该问题
- ASCII码字符共有256个,故利用数组记录不同字符的出现次数
- 构造maxcount+1个String桶,将出现了相同次数的字符放入String桶中
- 同上进行遍历
Code
|
|
Bucket Sort
|
|
Top K Frequent Elements
Question
Given a non-empty array of integers, return the k most frequent elements.
For example,
Given [1,1,1,2,2,3] and k = 2, return [1,2].
Analysis
同上,在找kth元素的时候利用count计数,满足条件跳出循环
Code
|
|